// 提交链接：https://leetcode.cn/problems/sum-of-all-subset-xor-totals/
// lc1863. 找出所有子集的异或总和再求和
// 完成日期：2024/10/17
// c++ 位运算 组合数学

class Solution {
public:
    int subsetXORSum(vector<int>& nums) {
        int n = nums.size();
        int ans = 0;
        for (int i = 0; i < 1 << n; ++i) 
        {
            int s = 0;
            for (int j = 0; j < n; ++j) 
                if (i >> j & 1) 
                    s ^= nums[j];  
            
            ans += s;
        }
        return ans;
    }
};